1. Field of the Invention
The present invention relates to conferencing systems and methods and, in particular, to computer-implemented processes and apparatuses for providing communication of data between nodes of a conferencing system.
2. Description of the Related Art
In a conferencing system, data is transferred between endpoints of the conferencing system. A point to point conferencing system comprises two endpoints such as personal computer (PC) systems, and multi-point conference systems comprise a plurality of endpoints and, typically, one or more multi-point conferencing units (MCUs). MCUs are also sometimes referred to as multi-point control units. Conferencing systems typically comprise a variety of conferencing elements, in addition to PCs and MCUs, such as routers and servers. Each endpoint has a processing bandwidth of a given magnitude or power, which may vary dynamically with time depending upon the processing load on the endpoint. The processing bandwidth of a particular endpoint also depends on the strength or processing ability of its microprocessor and other components.
Each endpoint is also able to receive and transmit data to various other elements of the conferencing system over a communications medium having a particular bandwidth. This communications bandwidth may also vary dynamically over time depending upon traffic on the respective communications media. Additionally, different elements within a conferencing system may be connected locally to transmission media of different types, having different communications bandwidths.
Data streams that are transferred to and from endpoints across communications media includes video data, audio data, and other data types. Various elements within a conferencing system, such as PC-based endpoints, MCUs, routers, and servers, serve as conference nodes for the conferencing system.
Thus, the endpoints and other nodes of conferencing systems have different processing and transmission bandwidths at any given point in time. For example, one endpoint's processor may at a given time be processing data and thus may be relatively heavily loaded. When the endpoint is heavily loaded, thus leaving a relatively low processing bandwidth remaining for processing of other data, it may not be able to adequately decode and process video, audio, and other data that it receives from another endpoint.
As another example, one endpoint may transmit high quality (i.e., high bandwidth) data over a transmission medium to an MCU, which is connected to several endpoints. One of these endpoints may have a weaker processor, may be heavily loaded, or may be connected to the MCU via a relatively low bandwidth communications medium. If the MCU transmits the high-quality data to all its endpoints, the weaker endpoint will not be able to receive or process the data adequately.
To address this problem, the quality of the data generated by a source endpoint may be lowered so that the slowest or "lowest common denominator" endpoint is able to process the data, but this lowers the quality for all receiving endpoints. Further, as the processing bandwidth of various endpoints dynamically changes in accordance with their respective processing loads, endpoints transmitting data into the conferencing system would need to continually monitor the processing bandwidths of other endpoints, and change the quality of the encoded data so transmitted in accordance therewith.
Similarly, the communications bandwidth associated with various endpoints of a conferencing system may vary from endpoint to endpoint. As described above, the quality of data originating from a source endpoint may have to be lowered in accordance with the potential receiving endpoint having the narrowest communications bandwidth. Such a technique lowers the quality of data delivered to other endpoints having a wide enough communications bandwidth to receive higher quality data, and may also require continual monitoring, for example by an MCU, of dynamically changing communications bandwidths of various endpoints.
Another problem faced in the prior art arises when endpoints having limited processing and communications resources have to select among several tasks which compete for the endpoint's resources. A receiving endpoint may be able to process one full quality data stream from a first endpoint or from a second endpoint, but not both high quality data streams from both first and second endpoints. One technique that may be used to address this problem involves reducing the quality of each data stream so that both may be processed and communicated with the receiving endpoint's limited resources. In certain contexts, however, it would be preferable to select, receive, and process only one of the competing data streams, rather than to receive both data streams at diminished quality. Various factors concerning the content of the data, its origin, quality, or other significance may need to be considered to select among competing data streams, but unfortunately the data streams must be received and analyzed before deciding whether to receive both data streams.
What is needed, therefore, is an apparatus, system, and method for allowing various conference elements to make more globally optimal conference configuring decisions regarding the transmission and receipt of conference data.